package faultTolerant;

import loadBalancer.ConsistentHashBalancer;
import loadBalancer.LoadBalance;
import spi.SpiLoader;

/**
 * 容错对象工厂
 */
public class FaultTolerantFactory {
    private static final FaultTolerant DEFAULT_FAULT_TOLERANT = new FaultOver();//默认是故障转移
    static {
        SpiLoader.load(FaultTolerant.class);
    }

    /**
     * 根据容错机制对应的种类key，获取对应的容错处理对象（默认采取spi机制）
     * @param faultTolerantCategoryKey
     * @return
     */
    public static FaultTolerant getInstance(String faultTolerantCategoryKey){
        return SpiLoader.getInstance(FaultTolerant.class,faultTolerantCategoryKey);
    }
}
